蓝牙调试器app HC05、HC06(功能非常强大) 您所在的位置:网站首页 蓝牙 遥控器 app 蓝牙调试器app HC05、HC06(功能非常强大)

蓝牙调试器app HC05、HC06(功能非常强大)

2023-07-22 00:09| 来源: 网络整理| 查看: 265

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54ix5YaZ5Luj56CB55qE54yr,size_8,color_FFFFFF,t_70,g_se,x_16

 可以在百度搜索蓝牙调试器可下载。

下面介绍怎么使用以及接收代码

 分为两种模式:基础模式和专业模式 基础模式

基础模式非常的简单,设置相应的按键的值就可以显现发送数据,例如用按键控制灯的亮灭。具体设置1、点击编辑模式就可以编辑相应的按键值。2、点击按键弹出修改界面,在里面可以设置按键的名称、按下时发送的数据、松开时发送的数据和发送时的编码模式。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54ix5YaZ5Luj56CB55qE54yr,size_20,color_FFFFFF,t_70,g_se,x_16

 专业模式

专业模式可以自己编辑器件,例如摇杆、按键、能量条、波形图等。该模式可以编辑器件可玩性和可操作性能强。1、点击+图标可新建项目。2、编辑器件可以根据需要添加器件。3、通信设置设置可编辑发送数据的长度和类型。

 watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54ix5YaZ5Luj56CB55qE54yr,size_20,color_FFFFFF,t_70,g_se,x_16

 器件编辑:进入器件编辑,最上方的标志分别是添加器件、链接器件和设置发送的值或范围(一定要链接要不然无法发送数据或者接收数据)、删除器件、退出。最右边的标志从上到下依次是移动器件、缩放器件图标大小和调节器件角度。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54ix5YaZ5Luj56CB55qE54yr,size_20,color_FFFFFF,t_70,g_se,x_16

通信设置(必须设置):通过设置发送或者接收数据的类型和数量(上面会显示相应的数据包的长度下图中数据包为12字节对应的单片机发送或者接收的字节都为12个字节)设置完后就可用在编辑器件中链接变量。

重点:该软件有一个简单的协议,数据包主要包括四部分:包头、原数据、校验和包尾,其中包头一定要是0XA5,包尾一定要是0X5A。

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54ix5YaZ5Luj56CB55qE54yr,size_20,color_FFFFFF,t_70,g_se,x_16

 下面是我自己写的基于stm32f103的接收代码:

串口初始化代码

void uart_init(u32 bound){ GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //USART1_TX GPIOA.9 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); //USART1_RX GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯GPIOA10 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); USART_InitStructure.USART_BaudRate = bound; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_Cmd(USART1, ENABLE); }

发送和解析函数

#define E_START 0 //准备成功 #define E_OK 1 //成功 #define E_FRAME_HEADER_ERROR 2 //包头错误 #define E_FRAME_RTAIL_ERROR 3 //包尾错误 #define LINE_LIN 12 //数据长度 uint8_t uart_flag; //接收标志 vu8 RX_lanya[12]; /*接收数据*/ void get_slave_data(uint8_t data) { static uint8_t uart_num=0; RX_lanya[uart_num++]=data; if(1==uart_num) { //接收到第一个字节不是0xA5,包头错误 if(0XA5!=RX_lanya[0]) { uart_num=0; uart_flag=E_FRAME_HEADER_ERROR; } } if(LINE_LIN==uart_num) { uart_flag=E_OK; //接收到最后一个字节是0X5A if(0X5A==RX_lanya[LINE_LIN-1]) { uart_flag=E_OK; } else //接收到的最后一个字节不为ox5A,包尾错误 { uart_flag=E_FRAME_RTAIL_ERROR; } uart_num=0; } } int key1=0,key2=0,key3=0,key4=0,key5=0; /*解析数据*/ void lanya_receive(void) { key1=RX_lanya[1]; key2=((int)RX_lanya[3]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有